home *** CD-ROM | disk | FTP | other *** search
/ Acorn User: China / Acorn User China CD-ROM (UK) (Disc A) / Acorn User China CD-ROM (UK) (Disc A).bin / DEMON / RISCOS2 / ARCKA9Q1.ARC / c / UDPDUMP < prev    next >
Encoding:
Text File  |  1992-03-05  |  944 b   |  41 lines

  1. #include <stdio.h>
  2. #include "global.h"
  3. #include "mbuf.h"
  4. #include "netuser.h"
  5. #include "internet.h"
  6. #include "udp.h"
  7. #include "misc.h"
  8.  
  9. /* Dump a UDP header */
  10. void udp_dump(struct mbuf **bpp, int32 source, int32 dest, int check)
  11. {
  12.         struct udp udp;
  13.         struct pseudo_header ph;
  14.         int16 csum;
  15.  
  16.         if(bpp == NULLBUFP || *bpp == NULLBUF)
  17.                 return;
  18.  
  19.         twprintf("UDP:");
  20.  
  21.         /* Compute checksum */
  22.         ph.source = source;
  23.         ph.dest = dest;
  24.         ph.protocol = UDP_PTCL;
  25.         ph.length = len_mbuf(*bpp);
  26.         if((csum = cksum(&ph,*bpp,ph.length)) == 0)
  27.                 check = 0;      /* No checksum error */
  28.  
  29.         ntohudp(&udp,bpp);
  30.  
  31.         twprintf(" %u->%u",udp.source,udp.dest);
  32.         twprintf(" len %u",udp.length);
  33.         if(udp.checksum == 0)
  34.                 check = 0;
  35.         if(check)
  36.                 twprintf(" CHECKSUM ERROR (%u)",csum);
  37.  
  38.         twprintf("\n");
  39. }
  40.  
  41.